Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording medium

ABSTRACT

An image decoding method and an image decoding apparatus is provided. The method comprises recovering a first motion vector corresponding to a first decoding reference picture based on the entropy decoded bit stream, calculating a second motion vector corresponding to a second decoding reference picture by scaling the first motion vector based on a first temporal distance between the current picture and the first decoding reference picture and a second temporal distance between the current picture and the second decoding reference picture, generating a prediction block relating to a current block in the current picture, based on the calculated second motion vector, generating a residual block relating to the current block through a residual data decoding process based on the entropy decoded bit stream, and recovering the current block based on the prediction block and the residual block.

CROSS-REFERENCE TO RELATED PATENT APPLICATION

This application is a Continuation of U.S. application Ser. No.13/779,960 filed on Feb. 28, 2013, in the U.S. Patent and TrademarkOffice, which is a Continuation of U.S. application Ser. No. 12/681,925filed on Apr. 7, 2010, in the U.S. Patent and Trademark Office, now U.S.Pat. No. 8,526,499 issued on Sep. 3, 2013, which is a National StageApplication under 35 U.S.C. § 371 of International Application No.PCT/KR08/00966 filed on Feb. 19, 2008, which claims priority from KoreanPatent Application No. 10-2008-0014672 filed on Feb. 19, 2008, in theKorean Intellectual Property Office, and Korean Patent Application No.10-2007-0059174 filed on Jun. 15, 2007, in the Korean IntellectualProperty Office, the disclosures of which are incorporated herein byreference in their entireties.

TECHNICAL FIELD

The present invention relates to a method and an apparatus ofbi-prediction coding, a method and an apparatus of bi-predictiondecoding, and a recording medium; and more particularly, to a method andan apparatus of bi-prediction coding, a method and an apparatus ofbi-prediction decoding, and a recording medium, which are capable ofreducing degree of correlation in time-axis in compression of movingimages.

BACKGROUND ART

According to MPEG-1, MPEG-2, and MPEG-4 fixed by the ISO/IEC JTC1, andan H.26x standard of the ITU-T, a P-picture coding method referring to apast picture so as to code a current picture and a B-picture codingmethod referring to both the past picture and a future picture areemployed at the time of coding a current picture, and motion predictioncoding is performed based on the methods.

In order to improve the coding efficiency of a motion vector, a motionvector of a current block is not just coded, but prediction coding ofthe motion vector is performed by using motion vectors of neighboringblocks so that a relation with the motion vectors of the neighboringblocks is reflected.

Therefore, in order to improve the coding efficiency, the accuracy ofthe motion vector and the minimization of a prediction error by usingthe same are important, but the compression efficiency of motion vectordata should be also considered.

For the minimization of the motion prediction error, in a bidirectionalprediction coding method, the accuracy of the motion vector is maximizedby determining very accurate pair of motion vectors through a jointmotion search so as to determine an optimal pair of a forward motionvector and a backward motion vector. However, in such bidirectionalprediction coding method, very high complexity is required, and thusthere are many difficulties in implementing the bidirectional predictioncoding method.

In general, in order to overcome the difficulties, in implementing thebidirectional prediction coding method, in the bidirectional predictioncoding method, after the search of the forward motion vector and thesearch of the backward motion vector are performed independently fromeach other, the bidirectional prediction coding is performed by usingthe searched optimal forward motion vector and backward motion vector.

However, in general, most of moving images are linearly moved. Even inthis case, both the forward motion vector and the backward motion vectorare transmitted without sufficiently using a fact that the motion of theimages is linear. Accordingly, since more coding bits of the motionvector are generated, coding performance may deteriorate.

The conventional bidirectional prediction coding relating to the movingimage compression will be hereinafter described in more detail. In theconventional bidirectional prediction coding, after predeterminedprediction cost is calculated by using Equation 1 and Equation 2, aforward motion vector and a backward motion vector having minimumprediction cost are selected as a bidirectional prediction vector. Anoptimal bidirectional prediction reference block is determined by usingthe bidirectional prediction vector.

$\begin{matrix}{{{\hat{B}}_{best}( {{mv}_{fw},{mv}_{b_{w}}} )} = {\min\limits_{{({{mv}_{fw},{mv}_{bw}})} \in {({{SR}_{fw},{SR}_{bw}})}}{{COST}( {B,{\hat{B}( {{mv}_{fw},{mv}_{bw}} )}} )}}} & {{Equation}\mspace{14mu} 1} \\{\mspace{79mu} {{\hat{B}( {{mv}_{fw},{mv}_{bw}} )} = {{w_{fw}{B_{fw}( {mv}_{fw} )}} + {w_{bw}{B_{bw}( {mv}_{bw} )}}}}} & {{Equation}\mspace{14mu} 2}\end{matrix}$

Herein,

COST(⋅)

of Equation 1 represents a cost function and is generally determined bythe sum of absolute differences (SAD) between the current block and aprediction block, a bit rate-distortion optimization method, or thelike.

B

represents a current block to be coded and

{circumflex over (B)}

represents a prediction block acquired by the weighted sum of a forwardreference picture block and a backward reference picture block as shownin Equation 2.

mv_(fw)

and

mv_(bw)

represent a forward motion vector value and a backward motion vectorvalue, respectively.

SR_(fw)

and

SR_(bw)

represent a forward search range and a backward search range,respectively.

In Equation 1,

{circumflex over (B)}_(best)

represents a final prediction value for the bidirectional predictioncoding. Herein, joint estimation is performed so as to find a finalforward motion vector and a final backward motion vector for thebidirectional prediction coding. In case of the joint estimation, sincemotion estimations of

SR_(fw)

X

SR_(bw)

times are required and very large amount of computing and access to areference picture memory are required, there are many practical problemsin an actual moving image compression system.

Due to the above-described problems, in general, in the bidirectionalprediction coding, as shown in Equation 3, after the forward motionvector and the backward motion vector are searched independently fromeach other, the bidirectional prediction is performed by using theforward motion vector and the backward motion vector found in Equation 3as shown in Equation 4.

$\begin{matrix}{\mspace{76mu} {{{{\hat{B}}_{{fw}\; \_ \; {best}}( {mv}_{fw} )} = {\min\limits_{{mv}_{fw} \in {SR}_{fw}}{{COST}( {B,{{\hat{B}}_{{fw}\;}( {mv}_{fw} )}} )}}}\mspace{76mu} {{{\hat{B}}_{{bw}\; \_ \; {best}}( {mv}_{bw} )} = {\min\limits_{{mv}_{bw} \in {SR}_{bw}}{{COST}( {B,{{\hat{B}}_{{bw}\;}( {mv}_{bw} )}} )}}}}} & {{Equation}\mspace{14mu} 3} \\{{{\hat{B}}_{best}( {{mv}_{fw},{mv}_{b_{w}}} )} = {{w_{fw}{{\hat{B}}_{{fw}\; \_ \; {best}}( {mv}_{fw} )}} + {w_{bw}{{\hat{B}}_{{bw}\; \_ \; {best}}( {mv}_{bw} )}}}} & {{Equation}\mspace{14mu} 4}\end{matrix}$

In Equation 3

{circumflex over (B)}_(fw)(mv_(fw))

and

{circumflex over (B)}_(bw)(mv_(bw))

represent a block in a position of a motion vector of a forwardreference picture and a block in a position of a motion vector of abackward reference picture, respectively.

In Equation 4,

{circumflex over (b)}_(best)(mv_(fw), mv_(bw))

represents an optimal bidirectional motion compensation block using theoptimal forward motion vector and the optimal backward motion vectorindependently found in Equation 3.

However, in case of independently performing the bidirectional motionestimation, since the required number of searches is

$\begin{matrix}\begin{matrix}{SR}_{fw} \\ + \end{matrix} \\{{SR}_{bw},}\end{matrix}$

very low complexity is required, but bidirectional predictionperformance deteriorates, and thus bit generation rate increases at thetime of coding the motion vector.

Prior art developed to solve the problems is a symmetric mode in thebidirectional prediction employing the Chinese AVS (Advanced VideoSystem) standard. In the symmetric mode, only the forward motion vectoris transmitted and the backward motion vector is calculated by the useof a predetermined calculation formula in a decoder. After the forwardmotion vector and the backward motion vector required for thebidirectional prediction are acquired, a bidirectional predictionreference block is acquired.

In such symmetric mode, since the backward motion vector is used bybeing calculated to be symmetric to the forward motion vector, only theforward motion vector is transmitted. Accordingly, bit amount producedin the motion vector coding can be reduced.

In a case that calculating the backward motion vector by transmittingthe forward motion vector is more advantageous than vice versa, theprior art can reduce the bit amount of the motion vector, which isrequired for the coding and can effectively implement a joint motionsearch of the forward motion vector and the backward motion vector.Therefore, the prior art can provide the bidirectional prediction methodwhile scarcely increasing complexity of searching for a matching blockof the motion search.

However, calculating the forward motion vector by transmitting thebackward motion vector may be more advantageous than calculating thebackward motion vector by transmitting the forward motion vector. Evenin this case, since the prior art cannot help calculating the backwardmotion vector by transmitting the forward motion vector, it is willinglyinefficient.

According to the bidirectional symmetric mode coding method of the priorart, one of the reference blocks used at the time of predicting themotion of the current block is brought from the forward referencepicture and the other is brought from the backward reference picture.The reference blocks are applied only in a case that the forwardreference picture is earlier than a current picture to which the currentblock belongs and the backward reference picture is later than thecurrent picture. However, at the time of predicting the motion of thecurrent block, a case that both the forward reference picture and thebackward reference picture are earlier than or later than the currentpicture to which the current block belongs may be more advantageous thanvice versa according to an image property. Even in this case, there is aproblem that since only the early and later positioned referencepictures should be applied to the motion prediction according to theprior art, the compression efficiency is lowered.

DISCLOSURE OF INVENTION Technical Problem

Accordingly, a first object of the present invention is to provide abi-prediction coding method and apparatus which can solve a problem ofcomplexity in implementing the bi-prediction coding of moving imagecompression, improve coding efficiency by more efficiently transmittinga motion vector based on a fact that an image is linearly moved, enhancedeterioration of coding occurring due to only a forward motion vector istransmitted in a symmetric mode coding method which is any oneconventional bidirectional prediction coding methods relating to themoving image compression, and perform efficient coding by easilyperforming joint estimation at the time of performing actualbi-prediction coding while reducing bit rate consumed for motion vectorcoding.

A second object of the present invention is to provide a bi-predictiondecoding method and apparatus capable of performing more efficientdecoding in decoding data coded in accordance with the above-describedbi-prediction coding method and apparatus

Technical Solution

The above-described first object of the present invention is achieved bya bi-prediction coding method using a plurality of reference pictureswhich includes the steps of: (a) selecting a first selected motionvector to a first reference picture for a current block to be coded; (b)calculating a first calculated motion vector to a second referencepicture based on the first selected motion vector; (c) calculating firstpredicted coding cost based on the first selected motion vector, thefirst calculated motion vector, a first selected motion prediction blockcorresponding to the first selected motion vector, and a firstcalculated motion prediction block corresponding to the first calculatedmotion vector; (d) choosing a first representative selected motionvector and a first representative calculated motion vector that satisfya predetermined criterion, and first representative predicted codingcost based on the first representative selected motion vector and thefirst representative calculated motion vector by repetitively performingthe steps (a) to (c); (e) selecting a second selected motion vector fromthe second reference picture; (f) calculating a second calculated motionvector to the first reference picture based on the second selectedmotion vector; (g) calculating second predicted coding cost based on thesecond selected motion vector, the second calculated motion vector, asecond selected motion prediction block corresponding to the secondselected motion vector, and a second calculated motion prediction blockcorresponding to the second calculated motion vector; (h) choosing asecond representative selected motion vector and a second representativecalculated motion vector that satisfy a predetermined criterion, andsecond representative predicted coding cost based on the secondrepresentative selected motion vector and the second representativecalculated motion vector by repetitively performing the steps (e) to(g); (i) choosing the first representative selected motion vector as acoding target motion vector and the first representative calculatedmotion vector as a non-coding target motion vector if the firstrepresentative predicted coding cost is smaller than the secondrepresentative predicted coding cost, and choosing the secondrepresentative selected motion vector as the coding target motion vectorand the second representative calculated motion vector as the non-codingtarget motion vector if the second representative predicted coding costis smaller than the first representative predicted coding cost; and (j)coding the coding target motion vector.

Herein, the step (j) may includes a step of coding bi-prediction codingmode information for reporting that the coding is a bi-prediction codingmode coded by the bi-prediction coding method.

In the step (b), the first calculated motion vector may be calculated bymultiplying relative temporal distances between a current picture towhich the current block belongs, and the first reference picture and thesecond reference picture by the first selected motion vector. In thestep (f), the second calculated motion vector is calculated by therelative temporal distances between the current picture, and the firstreference picture and the second reference picture by the secondselected motion vector.

Herein, in a case where the first reference picture and the secondreference picture are earlier and later than the current picture,respectively, the first calculated motion vector and the secondcalculated motion vector in the step (b) and the step (f) may becalculated by:

${mv}_{cal} = {{- \frac{{TD}_{C}}{{TD}_{B}}} \times {mv}_{sel}}$

(wherein, mv_(cal) is the first calculated motion vector or the secondcalculated motion vector, mv_(sel) is the first selected motion vectoror the second selected motion vector, TD_(B) is a temporal distancebetween any one of the first reference picture and the second referencepicture in which the first selected motion vector or the second selectedmotion vector is selected, and the current picture, and TD_(C) is atemporal distance between the current picture and any one of the firstreference picture and the second reference picture in which the firstcalculated motion vector or the second calculated motion vector iscalculated.).

In the case where both the first reference picture and the secondreference picture are earlier or later than the current picture, thefirst calculated motion vector and the second calculated motion vectorin the step (b) and the step (f) may be calculated by:

${mv}_{cal} = {\frac{{TD}_{C}}{{TD}_{B}} \times {mv}_{sel}}$

(wherein, mv_(cal) is the first calculated motion vector or the secondcalculated motion vector, mv_(sel) is the first selected motion vectoror the second selected motion vector, TD_(B) is a temporal distancebetween any one of the first reference picture and the second referencepicture in which the first selected motion vector or the second selectedmotion vector is selected, and the current picture, and TD_(C) is atemporal distance between the current picture and any one of the firstreference picture and the second reference picture in which the firstcalculated motion vector or the second calculated motion vector iscalculated.).

The above-described first object of the present invention may beachieved by a bi-prediction coding apparatus using a plurality ofreference pictures, which includes a first motion vector selecting unitselecting first selected motion vectors corresponding to a plurality offirst reference pictures within a predetermined motion search rangebased on a current block to be coded from the plurality of firstreference pictures; a first motion vector calculating unit calculatingfirst calculated motion vectors corresponding to the first selectedmotion vectors based on the first selected motion vectors and secondreference pictures corresponding to the first selected motion vectors; afirst coding cost calculating unit calculating first prediction codingcosts corresponding to the first selected motion vectors based on thefirst selected motion vectors, the first calculated motion vectors,first selected motion prediction blocks corresponding to the firstselected motion vectors, and first calculated motion prediction blockscorresponding to the first calculated motion vectors; a first codingcost choosing unit choosing first representative prediction coding costthat satisfies a predetermined condition by comparing the calculatedplurality of first prediction coding costs corresponding to the firstselected motion vectors with each other; a second motion vectorselecting unit selecting second selected motion vectors corresponding tosecond reference pictures from the second reference pictures; a secondmotion vector calculating unit calculating the second selected motionvectors and second calculated motion vectors corresponding to the secondselected motion vectors based on the first reference picturescorresponding to the second selected motion vectors; a second codingcost calculating unit calculating second prediction coding costscorresponding to the second selected motion vectors based on the secondselected motion vectors, the second calculated motion vectors, secondselected motion prediction blocks corresponding to the second selectedmotion vectors, and second calculated motion prediction blockscorresponding to the second calculated motion vectors; a second codingcost choosing unit choosing second representative prediction coding costthat satisfies a predetermined condition by comparing the calculatedplurality of second prediction coding costs corresponding to the secondselected motion vectors with each other; a motion vector choosing unitchoosing any one of the first selected motion vectors corresponding tothe first representative prediction coding cost as a coding targetmotion vector if the first representative prediction coding cost issmaller than the second representative prediction cost and any one ofthe second selected motion vectors corresponding to the secondrepresentative prediction coding cost as the coding target motion vectorif the second representative prediction coding cost is smaller than thefirst representative prediction coding cost; and a motion vector codingunit coding the coding target motion vector.

The above-described second object of the present invention is achievedby a bi-prediction decoding method for decoding bi-prediction coded databy using a plurality of reference pictures, which includes the steps of:(a) determining whether or not a current block to be decoded is abi-prediction coding mode by analyzing the coded data; (b) recovering adecoding target motion vector by decoding the coded data in a case whereit is determined that the current block is the bi-prediction codingmode; (c) calculating a non-decoding target motion vector correspondingto a second reference picture based on the recovered decoding targetmotion vector, a temporal distance between a current picture to whichthe current block belongs and a first decoding reference picturecorresponding to the decoding target motion vector, and a temporaldistance between the current picture, and a second decoding referencepicture; and (d) reconstructing the current block based on a generatedprediction block by generating the prediction block for the currentblock based on the recovered decoding target motion vector and thecalculated non-decoding target motion vector.

Herein, in the step (c), the non-decoding target motion vector may becalculated by multiplying relative temporal distances between thecurrent picture, and the first reference picture and the secondreference picture by the decoding target motion vector.

In a case where the first reference picture and the second referencepicture are earlier and later than the current picture, respectively,the non-decoding target motion vector in the step (c) may be calculatedby:

${mv}_{cal} = {{- \frac{{TD}_{C}}{{TD}_{B}}} \times {mv}_{sel}}$

(wherein, mv_(cal) is the non-decoding target motion vector, mv_(sel) isthe decoding target motion vector, TD_(B) is a temporal distance betweenthe first reference picture and the current picture, and TD_(C) is atemporal distance between the second reference picture and the currentpicture.).

Herein, in the case where both the first reference picture and thesecond reference picture are earlier or later than the current picture,the non-decoding target motion vector in the step (c) may be calculatedby:

${mv}_{cal} = {\frac{{TD}_{C}}{{TD}_{B}} \times {mv}_{sel}}$

(wherein, mv_(cal) is the non-decoding target motion vector, mv_(sel) isthe decoding target motion vector, TD_(B) is a temporal distance betweenthe first reference picture and the current picture, and TD_(C) is atemporal distance between the second reference picture and the currentpicture.).

The above-described second object of the present invention may beachieved by a bi-prediction decoding apparatus for decodingbi-prediction coded data by using a plurality of reference pictures,which includes an entropy decoding unit decoding the coded data; adecoding controlling unit determining whether or not a current block tobe decoded is coded through a bi-prediction coding mode by analyzing thedecoded data; a decoding target motion vector recovering unit recoveringa decoding target motion vector from the decoded data if the currentblock is coded in the bi-prediction coding mode by the decodingcontrolling unit; a non-decoding target motion vector calculating unitcalculating a non-decoding target motion vector corresponding to asecond reference picture based on the recovered decoding target motionvector, a temporal distance between a current picture to which thecurrent block belongs to and a first reference picture corresponding tothe decoding target motion vector, and a temporal distance between thecurrent picture and the second reference picture; a motion compensatingunit generating at least one prediction block based on the recovereddecoding target motion vector and the calculated non-decoding targetmotion vector; and a current block reconstructing unit reconstructingthe current block based on the recovered data and the prediction block.

Advantageous Effects

In accordance with the present invention, in selecting a coding targetmotion vector and a non-coding target motion vector for a current block,since a calculated motion vector having higher coding efficiency isselected and coded by calculating a first calculated motion vector to asecond reference picture based on a first selected motion vectorselected from a first reference picture and calculating a secondcalculated motion vector for the first reference picture based on asecond selected motion vector selected from a second reference picture,coding efficiency of a transmitted motion vector can be furtherincreased and coding efficiency of a prediction error can be improved.

It is possible to enhance the deterioration of coding performanceoccurring due to transmitting only a forward motion vector in asymmetric mode coding method which is one of conventional bidirectionalprediction coding methods relating to moving image compression and toperform more efficient coding by easily performing joint estimation atthe time of actual bi-prediction coding while reducing bit rate consumedfor coding the motion vector.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1 and 2 are drawings for describing a bi-prediction coding methodin accordance with the present invention;

FIGS. 3 to 5 illustrate examples of temporal relations between a currentpicture and a first reference picture and a second reference picture inthe bi-prediction coding method in accordance with present invention;

FIG. 6 illustrates a configuration of a bi-prediction coding apparatusin accordance with the present invention;

FIG. 7 illustrates an example of a configuration of a motion predictingunit of the bi-prediction coding apparatus of FIG. 6;

FIG. 8 is a drawing for describing a bi-prediction decoding method inaccordance with the present invention;

FIG. 9 illustrates a configuration of a bi-prediction decoding apparatusin accordance with the present invention; and

FIG. 10 illustrates an example of a configuration of a motion vectordecoding unit of the bi-prediction decoding apparatus of FIG. 9.

BEST MODE FOR CARRYING OUT THE INVENTION

The present invention provides a bi-prediction coding method using aplurality of reference pictures, which includes the steps of: (a)selecting a first selected motion vector to a first reference picturefor a current block to be coded; (b) calculating a first calculatedmotion vector to a second reference picture based on the first selectedmotion vector; (c) calculating first predicted coding cost based on thefirst selected motion vector, the first calculated motion vector, afirst selected motion prediction block corresponding to the firstselected motion vector, and a first calculated motion prediction blockcorresponding to the first calculated motion vector; (d) choosing afirst representative selected motion vector and a first representativecalculated motion vector that satisfy a predetermined criterion, andfirst representative predicted coding cost based on the firstrepresentative selected motion vector and the first representativecalculated motion vector by repetitively performing the steps (a) to(c); (e) selecting a second selected motion vector from the secondreference picture; (f) calculating a second calculated motion vector tothe first reference picture based on the second selected motion vector;(g) calculating second predicted coding cost based on the secondselected motion vector, the second calculated motion vector, a secondselected motion prediction block corresponding to the second selectedmotion vector, and a second calculated motion prediction blockcorresponding to the second calculated motion vector; (h) choosing asecond representative selected motion vector and a second representativecalculated motion vector that satisfy a predetermined criterion, andsecond representative predicted coding cost based on the secondrepresentative selected motion vector and the second representativecalculated motion vector by repetitively performing the steps (e) to(g); (i) choosing the first representative selected motion vector as acoding target motion vector and the first representative calculatedmotion vector as a non-coding target motion vector if the firstrepresentative predicted coding cost is smaller than the secondrepresentative predicted coding cost, and choosing the secondrepresentative selected motion vector as the coding target motion vectorand the second representative calculated motion vector as the non-codingtarget motion vector if the second representative predicted coding costis smaller than the first representative predicted coding cost; and (j)coding the coding target motion vector.

The present invention provides a bi-prediction decoding method fordecoding bi-prediction coded data by using a plurality of referencepictures, which includes the steps of: (a) determining whether or not acurrent block to be decoded is a bi-prediction coding mode by analyzingthe coded data; (b) recovering a decoding target motion vector bydecoding the coded data in a case where it is determined that thecurrent block is the bi-prediction coding mode; (c) calculating therecovered decoding target motion vector, and a non-decoding targetmotion vector corresponding to a second reference picture based on atemporal distance between a current picture to which the current blockbelongs and a first decoding reference picture corresponding to thedecoding target motion vector and a temporal distance between thecurrent picture and a second decoding reference picture; and (d)reconstructing the current block based on a generated prediction blockby generating the prediction block for the current block based on therecovered decoding target motion vector and the calculated non-decodingtarget motion vector.

MODE FOR THE INVENTION

Hereinafter, embodiments of the present will be described in more detailwith reference to the accompanying drawings.

FIGS. 1 and 2 are flowcharts for a bi-prediction coding method inaccordance with the present invention. Referring to FIGS. 1 and 2,first, when an N by M block (hereinafter, referred to as ‘currentblock’) which is a coding target is inputted (S10), a first referencepicture and a second reference picture are determined based on a currentpicture to which the current block belongs. Herein, a block size of N byM may include a case that N and M are the same as each other ordifferent from each other.

Then, a motion vector (hereinafter, referred to as ‘first selectedmotion vector’) is selected within a predetermined motion search rangefrom a first reference picture (S11). A motion vector (hereinafter,referred to as ‘first calculated motion vector’) for a second referencepicture corresponding to the first reference picture is calculated basedon the first selected motion vector (S12). Herein, the first selectedmotion vector selected from the first reference picture is actuallycoded and transmitted in a case the first selected motion vector ischosen as a coding target motion vector in a process to be describedbelow and the first calculated motion vector is a motion vector to becalculated in a decoding process based on the transmitted coding targetmotion vector and becomes a motion vector which is not coded, that is, anon-transmitted motion vector in a coding process.

Next, a first selected motion prediction block for the first selectedmotion vector is generated and a first calculated motion predictionblock for the first calculated motion vector is generated (S13).Prediction coding cost (hereinafter, referred to as ‘first predictioncoding cost’) is calculated based on the first selected motion vector,the first calculated motion vector, the first selected motion predictionblock, and the first calculated motion prediction block (S14).

Then, a plurality of first prediction coding costs are calculated byrepetitively performing the steps S11 to S14 for the selected first andsecond reference pictures. When the calculation of the plurality offirst prediction coding costs for the first and second referencepictures is finished (S15), the first prediction coding cost whichsatisfies a predetermined criterion is chosen among the calculatedplurality of first prediction coding costs. Herein, the choosingreference of the first prediction coding cost is established so that thelowest coding cost is chosen among the first prediction coding costs.

The selected first prediction coding cost, and the first selected motionvector and the first calculated motion vector which are used forcalculating the selected first prediction coding cost are chosen asfirst representative prediction cost, and a first representativeselected motion vector and a representative calculated motion vector,respectively (S16).

Meanwhile, in correspondence with the above-described process, a motionvector (hereinafter, referred to as ‘second selected motion vector’) isselected from the second reference picture (S17) and a motion vector(hereinafter, referred to as ‘second calculated motion vector’) for thefirst reference picture is calculated based on the selected secondselected motion vector (S18).

Next, a second selected motion prediction block for the second selectedmotion vector is generated and a second calculated motion predictionblock for the second calculated motion vector is generated (S19).Prediction coding cost (hereinafter, referred to as ‘second predictioncoding’) is calculated based on the second selected motion vector, thesecond calculated motion vector, the second selected motion predictionblock, and the second calculated motion prediction block (S20).

A plurality of second prediction coding costs are calculated byrepetitively performing the steps S17 to S20 for the first and secondreference pictures. After then, when the calculation of the secondprediction coding costs is finished (S21), the second prediction codingcost that satisfies a predetermined criterion is chosen among thecalculated plurality of second prediction coding costs. Herein, thechoosing reference of the second prediction coding cost is establishedso that the lowest coding cost is chosen among the second predictioncoding costs.

The chosen second prediction coding cost, and the second selected motionvector and the second calculated motion vector which are used forcalculating the chosen second prediction coding cost are chose as secondrepresentative prediction coding cost, and a second representativeselected motion vector and a second representative calculated motionvector (S22).

Through the above-described process, when the first representativeprediction coding cost and the second representative prediction codingcost are chosen, the first representative prediction coding cost and thesecond representative prediction coding cost are compared with eachother (S23). At this time, if the first representative prediction codingcost is smaller than the second representative prediction coding cost,the first representative selected motion vector is chosen as the codingtarget motion vector and the first representative calculated motionvector is chosen as a non-coding target motion vector (S25).

Meanwhile, if the second representative prediction coding cost issmaller than the first representative prediction coding cost, the secondrepresentative selected motion vector is chosen as the coding targetmotion vector and the second representative calculated motion vector ischosen as the non-coding target motion vector (S24).

Through the above-described process, when the choice of the codingtarget motion vector and the non-coding target motion vector isfinished, a prediction block for the current block is generated by usingthe chosen coding target motion vector and non-coding target motionvector. A residual block which is a difference between the current blockand the prediction block is generated (S26).

Next, the coding target motion vector and the residual block are coded(S27). At this time, in the coding process, the coding target motionvector and the residual block can be coded and transmitted withbi-prediction coding mode information having information indicating thatan image is coded by the above-described coding method, that is, thebi-prediction coding method in accordance with the present invention.Accordingly, in the decoding process, a non-transmitted non-codingtarget motion vector is calculated by using the transmitted codingtarget motion vector.

In the above-described process, the first reference picture and thesecond reference picture can be determined to correspond to each other.In a case that the second selected motion vector is selected from thesecond reference picture to which the first calculated motion vectorcalculated by the first selected motion vector belongs, the firstreference picture used in calculating the second calculated motionvector by using the second selected motion vector selected from thecorresponding second reference picture may become the first referencepicture to which the first selected motion vector belongs.

Hereinafter, a method of calculating the first calculated motion vectorand the second calculated motion vector in the bi-prediction codingmethod in accordance with the present invention will be described indetail with reference to FIGS. 3 to 5.

The first calculated motion vector in accordance with the presentinvention is calculated by multiplying a relative temporal distancebetween the current picture, and the first reference picture and thesecond reference picture by the first selected motion vector. Similarly,the second calculated motion vector is calculated by multiplying arelative temporal distance between the current picture to which thecurrent block belongs, and the first reference picture and the secondreference picture by the second selected motion vector. Hereinafter, thefirst selected motion vector and the first calculated motion vector willbe described.

FIGS. 3a and 3b show a case that the first reference picture and thesecond reference picture are earlier and later than the current picture,respectively. FIG. 3a shows the case that the first reference picture isearlier than the current picture and the second reference picture islater than the current picture. FIG. 3b shows the case vice versa.

As shown in FIG. 3, in the case that the first reference picture and thesecond reference picture are earlier and later than the current picture,respectively, the first calculated motion vector is calculated by:

$\begin{matrix}{{mv}_{cal} = {{- \frac{{TD}_{C}}{{TD}_{B}}} \times {mv}_{sel}}} & {{Equation}\mspace{14mu} 5}\end{matrix}$

Herein, mv_(cal) is a first calculated motion vector, mv_(sel) is thefirst selected motion vector, TD_(B) is the temporal distance betweenthe first reference picture and the current picture, and TD_(C) is thetemporal distance between the second reference picture and the currentpicture.

TD_(C) may be given by:

TD_(C)=TD_(D)−TD_(B)  Equation 6

Herein, TD_(D) is a temporal distance between the first referencepicture and the second reference picture as shown in FIG. 3, and TD_(B)is the temporal distance between the current picture and the firstreference picture.

Meanwhile, FIGS. 4a and 4b show a case that both the first referencepicture and the second reference picture are earlier than the currentpicture. FIG. 4a shows a case that the first reference picture is laterthan the second reference picture and FIG. 4b shows a case that thesecond reference picture is later than the first reference picture.

As shown in FIG. 4, in the case that both the first reference pictureand the second reference picture are earlier than the current picture,the first calculated motion vector is calculated by:

$\begin{matrix}{{mv}_{cal} = {\frac{{TD}_{C}}{{TD}_{B}} \times {mv}_{sel}}} & {{Equation}\mspace{14mu} 7}\end{matrix}$

Herein, mv_(cal) is the first calculated motion vector, mv_(sel) is thefirst selected motion vector, TD_(B) is the temporal distance betweenthe first reference picture and the current picture, and TD_(C) is thetemporal distance between the second reference picture and the currentpicture.

When TD_(C) of Equation 7 is expressed by using TD_(D) which is thetemporal distance between the first reference picture and the secondreference picture, and the TD_(B) which is the temporal distance betweenthe current picture and the first reference picture, TD_(C) may be givenby Equation 8 for FIG. 4a and by Equation 9 for FIG. 4 b.

TD_(C)=TD_(D)+TD_(B)  Equation 8

TD_(C)=TD_(B)−TD_(D)  Equation 9

Meanwhile, FIGS. 5a and 5b show a case that both the first referencepicture and the second reference picture are later than the currentpicture. FIG. 5a shows a case that the first reference picture isearlier than the second reference picture and FIG. 5b shows a case thatthe second reference picture is earlier than the first referencepicture.

As shown in FIG. 5, in the case that the both the first referencepicture and the second reference picture are later than the currentpicture, the first calculated motion vector is calculated by Equation 7.

When TD_(C) of Equation 7 is expressed by using TD_(D) which is thetemporal distance between the first reference picture and the secondreference picture, and the TD_(B) which is the temporal distance betweenthe current picture and the first reference picture, TD_(C) may be givenby Equation 8 for FIG. 5a and by Equation 9 for FIG. 5 b.

Herein, when Equation 5 to Equation 9 are applied to a case ofcalculating the second calculated motion vector, the first referencepicture and the second reference picture are exchanged with each other.That is, the first reference picture in Equation 5 to Equation 9 is areference picture for selecting the motion vector and the secondreference picture is a reference picture for calculating the motionvector. Accordingly, the motion vector is selected from the secondreference picture and the motion vector is calculated from the firstreference picture in the calculation of the second calculated motionvector. Therefore, the first reference picture and the second referencepicture are exchanged with each other in Equation 5 to Equation 9 in thecalculation of the second calculated motion vector.

Hereinafter, a bi-prediction coding apparatus in accordance with thepresent invention will be described in detail with reference to FIGS. 6and 7.

Referring to FIG. 6, the bi-prediction coding apparatus in accordancewith the present invention may include an image inputting unit 10, amotion predicting unit 16, a motion compensating unit 17, a motionvector coding unit 18, a residual data coding unit 12, a residual datadecoding unit 13, an entropy coding unit 14, a multiplexing unit 19, anda coding controlling unit 11.

An uncompressed digital moving image as a coding target image isinputted into the image inputting unit 10. Herein, moving image datainputted into the image inputting unit 10 is composed of blocks dividedin predetermined sizes. The moving image data inputted through the imageinputting unit 10 is subtracted through a prediction block outputtedfrom the motion compensating unit 17, that is, a compensation value anda subtraction unit, and is outputted to the residual data coding unit12.

When the moving image data is inputted through the image inputting unit10, The coding controlling unit 11 performs a corresponding controllingoperation by determining a coding type depending on whether or notmotion compensation is performed for the inputted moving image data, forexample, intracoding and intercoding.

The residual data coding unit 12 quantizes the image data outputted fromthe subtraction unit, that is, transformation coefficients acquired bytransforming and coding a residual block according to a predeterminedquantization process and generates N by M data which is two-dimensiondata constituted of the quantized transformation coefficients. Herein, aDCT (Discrete Cosine Transform) method may be adopted as an example of atransformation method applied in the residual data coding unit 12.

Since the moving image data coded by being inputted into the residualdata coding unit 12 may be used as a reference picture for motioncompensation of image data input thereafter or therebefore, the codedimage data is subjected to dequantization and inverse transformationcoding which are inverse processes to the processes performed in theresidual data coding unit 12 through the residual data decoding unit 13.Image data outputted from the residual data decoding unit 13 is storedin a memory unit 15. In a case that the image data outputted from theresidual data decoding unit 13 is differential image data, dataoutputted from the motion compensating unit 17, that is, the predictionblock is added to the image data and then, is stored in the memory unit15.

Meanwhile, the motion predicting unit 16 predicts a motion by using aplurality of reference pictures, that is, the above-described first andsecond reference pictures. The motion predicting unit 16 selects acoding target motion vector and a non-coding target motion vector andthe motion compensating unit 17 calculates the prediction block for thecurrent block, that is, a compensation value for the current block byusing the coding target motion vector and the non-coding target motionvector.

FIG. 7 shows a configuration of the motion predicting unit 16 inaccordance with the present invention. Referring to FIG. 7, a firstmotion vector selecting unit 110 a selects first selected motion vectorscorresponding to the first reference pictures within a predeterminedmotion search range from the first reference pictures based on thecurrent block to be coded.

A first motion vector calculating unit 111 a calculates first calculatedmotion vectors corresponding to the second reference pictures by usingthe first selected motion vectors selected in the first motion vectorselecting unit 110 a. Herein, a process of calculating the firstcalculated motion vectors may be expressed by Equation 5 to Equation 9,and detailed description thereof is omitted.

A second motion vector selecting unit 110 b selects second selectedmotion vectors corresponding to the second reference pictures from thesecond reference pictures extracted by a reference picture extractingunit. A second motion vector calculating unit 111 b calculates secondcalculated motion vectors corresponding to the first reference picturesby using the second selected motion vectors selected in the secondmotion vector selecting unit 110 b. Herein, a process of calculating thesecond calculated motion vectors may be expressed by Equation 5 toEquation 9, and detailed description thereof is omitted.

A first motion prediction block generating unit 112 a generates firstselected motion prediction blocks corresponding to the first selectedmotion vectors and first calculated motion prediction blockscorresponding to the first calculated motion vectors based on the firstselected motion vectors and the first calculated motion vectors.

A first coding cost calculating unit 113 a calculates first predictioncoding costs by using the first selected motion vectors, the firstcalculated motion vectors, the first selected motion prediction blocks,and the first calculated motion prediction blocks. Herein, the firstprediction coding costs are calculated for the first selected codingcosts selected from the plurality of first reference pictures.

Herein, a first coding cost choosing unit 114 a chooses any one thatsatisfies a predetermined criterion among the first prediction codingcosts calculated by the first coding cost calculating unit 113 a. In thepresent invention, the lowest first prediction coding cost is chosen.

The first coding cost choosing unit 114 a chooses the chosen firstprediction coding cost, and the first selected motion vector and thefirst calculated motion vector for the chosen first prediction codingcost as first representative prediction coding cost, and a firstrepresentative selected motion vector and a first representativecalculated motion vector, respectively.

Similarly, a second motion prediction block generating unit 112 bgenerates the second selected motion prediction block corresponding tothe second selected motion vector and the second calculated motionprediction block corresponding to the second calculated motion vector.

A second coding cost calculating unit 113 b calculates a plurality ofsecond prediction coding costs by using the second selected motionvector, the second calculated motion vector, the second selected motionprediction block, and the second calculated motion prediction block.

Herein, a second coding cost choosing unit 114 b chooses any one thatsatisfies a predetermined criterion among the second prediction codingcosts calculated by the second coding cost calculating unit 113 b. Inthe present invention, the lowest second prediction coding cost ischosen.

The second coding cost choosing unit 114 b chooses the chosen secondprediction coding cost, and the second selected motion vector and thesecond calculated motion vector for the chosen second prediction codingcost as second representative prediction coding cost, and a secondrepresentative selected motion vector and a second representativecalculated motion vector, respectively.

The first representative prediction coding cost and the secondrepresentative prediction coding cost respectively chosen by the firstrepresentative coding cost choosing unit and the second representativecoding cost choosing unit are compared with each other by a motionvector choosing unit 115. The motion vector choosing unit 115 choosesthe first representative selected motion vector as the coding targetmotion vector and the first representative calculated motion vector asthe non-coding target motion vector if the first representativeprediction coding cost is smaller than the second representativeprediction coding cost.

Meanwhile, the motion vector choosing unit 115 chooses the secondrepresentative selected motion vector as the coding target motion vectorand the second representative calculated motion vector as the non-codingtarget motion vector if the second representative prediction coding costis smaller than the first representative prediction coding cost.

The motion compensating unit 17 outputs the prediction block to thesubtraction unit by performing the motion compensation by using thecoding target motion vector and the non-coding target motion vectorchosen through the above-described process. Herein, the motioncompensating unit 17 determines and output the prediction block for thecurrent block based on the coding target motion vector and thenon-coding target motion vector.

Meanwhile, the motion vector coding unit 18 codes and outputs the codingtarget motion vector chosen by the motion predicting unit 16. Herein,the motion vector coding unit 18 can code bi-prediction coding modeinformation for reporting that the coded motion vector is coded by thebi-prediction coding method with the coding target motion vector.

The data coded by the motion vector coding unit 18 is inputted into themultiplexing unit 19 with image data coded by the entropy coding unit14. The inputted data are generated in a compressed bitstream patternand is transmitted.

Hereinafter, a bi-prediction decoding method in accordance with thepresent invention will be described in detail with reference to FIG. 8.

First, when the compressed bitstream which is coded data is inputted(S30), entropy decoding for the inputted bitstream is performed (S31).After then, whether or not a current block to be decoded is in thebi-prediction coding mode is determined by analyzing the entropy-decodeddata (S32). Herein, whether or not the current block is in thebi-prediction coding mode can be determined by checking the existence ornonexistence of the bi-prediction coding mode information decoded in thecoding process through the above-described bi-prediction coding method.

Herein, if it is determined that the current block is in thebi-prediction coding mode, a decoding target motion vector is recoveredamong the entropy-decoded data (S33). Herein, the decoding target motionvector is the coding target motion vector coded through theabove-described bi-prediction coding method.

After then, a non-decoding target motion vector for a second decodingreference picture is calculated by using a temporal distance between acurrent picture to which the current block to be decoded and a referencepicture (hereinafter, referred to as ‘first decoding reference picture’)corresponding to the decoding target motion vector, a temporal distancebetween the current picture and the other reference picture(hereinafter, referred to as ‘second decoding reference picture’), andthe recovered decoding target motion vector (S34).

Herein, the decoding target motion vector is calculated by the method ofcalculating the first calculated motion vector (or the second calculatedmotion vector) by using the first selected motion vector (or the secondselected motion vector) in the above-described bi-prediction codingmethod, that is, by Equation 5 to Equation 9.

Herein, the decoding motion vector, the first decoding referencepicture, and the second decoding reference picture in the bi-predictiondecoding method are applied to Equation 5 to Equation 9 by correspondingto the first selected motion vector, the first reference picturecorresponding to the first selected motion vector, and the secondreference picture corresponding to the calculated first calculatedmotion vector. Therefore, the decoding motion vector is calculated.

As described above, when the non-decoding motion vector is calculated,the prediction block is generated by the decoding motion vector and thenon-decoding motion vector (S35). Herein, a pair of prediction block maybe generated by corresponding to the first decoding reference pictureand the second decoding reference picture.

When the prediction block is generated, the decoded data is subjected tothe entropy decoding process and a residual data decoding process,thereby generating a residual block for the current block. A recoveryimage is generated by adding the residual block and the prediction blockto each other (S36).

Meanwhile, if the data inputted in the step S32 is not in thebi-prediction coding mode, the decoding is performed through apredetermined decoding process, for example, a previously known decodingmethod (S37).

Hereinafter, a bi-prediction decoding apparatus in accordance with thepresent invention will be described in detail with reference to FIG. 9.As shown in FIG. 9, the bi-prediction decoding apparatus may include anentropy decoding unit 30, a residual data decoding unit 31, a motionvector decoding unit 35, a motion compensating unit 34, a memory unit33, and a decoding controlling unit 32.

The entropy decoding unit 30 outputs decoded and inputted data byentropy-decoding the data. Herein, entropy-coded quantizedtransformation coefficients, the decoding target motion vector,information on the motion vectors, and the like are entropy-decoded andoutputted in the entropy decoding unit 30.

The residual data decoding unit 31 decodes image data by dequantizingand inversely transforming the entropy-decoded transformationcoefficients.

The decoding controlling unit 32 extracts a coding type of coded andinputted data from the data decoded by the entropy decoding unit 30.Herein, in a case that the coded and inputted data is the data coded bythe above-described bi-prediction coding method, the bi-predictioncoding mode information coded together in the bi-prediction codingprocess and the decoding controlling unit 32 recognizes that thecorresponding data is coded through the bi-prediction coding methodbased on the reception of the bi-prediction coding mode information.

If the decoding controlling unit 32 determines that the correspondingdata is in the bi-prediction coding mode, the motion vector decodingunit 35 recovers the decoding target motion vector among the datadecoded by the entropy decoding unit 30. Referring to FIG. 10, themotion vector decoding unit 35 may include a decoding target motionvector recovering unit 130 and a non-decoding target motion vectorcalculating unit 133.

If the decoding controlling unit 32 determines that the correspondingdata is in the bi-prediction coding mode, the decoding target motionvector recovering unit 130 recognizes the motion vector decoded by theentropy decoding unit 30 as the decoding target motion vector.

The non-decoding target motion vector calculating unit 133 calculatesthe non-decoding target motion vector by using the decoding targetmotion vector, and the temporal distances between the current picture,and the first and second decoding reference pictures stored in thememory unit 33. Herein, the calculation of the decoding target motionvector is described in the above-described bi-prediction decoding methodand thus detailed description thereof is omitted.

Meanwhile, the motion compensating unit 34 generates the predictionblock by using the decoding target motion vector and the non-decodingtarget motion vector which are outputted from the motion vector decodingunit 35. Herein, as described above, the pair of prediction blocks maybe generated by corresponding to the first decoding reference pictureand the second decoding reference picture.

The prediction block generated by the motion compensating unit 34 isadded to the residual block outputted through the entropy decodingprocess and the residual data decoding process by an adder, therebygenerating a recovery image of the current block (S36). The generatedrecovery image of the current block is stored in the memory unit 33 forthe motion compensation.

As described above, although preferred embodiments of the presentinvention have been described in detail, it will be understood by thoseskilled in the art that various changes and modifications may be madewithout departing from the principles and spirit of the generalinventive concept, the scope of which is defined in the appended claimsand their equivalents.

INDUSTRIAL APPLICABILITY

The present invention can be used for coding and decoding capable ofsolving a problem of complexity in implementing bi-prediction of movingimage compression and improving coding efficiency by more efficientlytransmitting motion vectors by using a fact that an moving image islinearly moved.

What is claimed is:
 1. An image decoding method with a decodingapparatus, the image decoding method comprising: (a) receiving anencoded bit stream of a current picture to be decoded; (b) recovering afirst motion vector from the current picture to a first decodingreference picture by entropy decoding the encoded bit stream of thecurrent picture, the first decoding reference picture being differentfrom the current picture; (c) calculating a second motion vector fromthe current picture to a second decoding reference picture by scalingthe first motion vector based on a first temporal distance between thecurrent picture and the first decoding reference picture and a secondtemporal distance between the current picture and the second decodingreference picture, the second motion vector being used for interprediction of a current block belonging to the current picture, thesecond decoding reference picture being different from the firstdecoding reference picture; (d) generating a prediction block relatingto the current block in the current picture, based on the second motionvector; (e) generating a residual block relating to the current blockthrough a residual data decoding process based on the entropy decodedbit stream; and (f) recovering the current block based on the predictionblock and the residual block, wherein the residual block is generated byperforming inverse-quantization for entropy decoded transformcoefficients.
 2. The image decoding method according to claim 1, whereinscaling the selected motion vector comprises multiplying the firstmotion vector by the second temporal distance.
 3. An image decodingapparatus comprising: an entropy decoding unit for receiving an encodedbit stream of a current picture to be decoded and entropy decoding theencoded bit stream of the current picture; a first motion vectorrecovering unit for recovering a first motion vector from the currentpicture to a first decoding reference picture based on the entropydecoded bit stream of the current picture, the first decoding referencepicture being different from the current picture; a second motion vectorcalculating unit for calculating a second motion vector from the currentpicture to a second decoding reference picture by scaling the firstmotion vector based on a first temporal distance between the currentpicture and the first decoding reference picture and a second temporaldistance between the current picture and the second decoding referencepicture, the calculated motion vector being used for inter prediction ofa current block belonging to the current picture, the second decodingreference picture being different from the first decoding referencepicture; a motion compensating unit for generating a prediction blockrelating to the current block in the current picture, based on thesecond motion vector; a residual data decoding unit for generating aresidual block relating to the current block through a residual datadecoding process based on the entropy decoded bit stream; and a currentblock recovering unit for recovering the current block based on theprediction block and the residual block, wherein the residual datadecoding unit performs inverse-quantization for entropy decodedtransform coefficients to generate the residual block.
 4. The imagedecoding apparatus according to claim 3, wherein scaling the selectedmotion vector comprises multiplying the selected motion vector by thesecond temporal distance.